Intel Extension for PyTorch

Intel Extension for PyTorch 是一个用于扩展官方 PyTorch 的 Python 包,可以轻松在 Intel 平台上获得性能提升。该扩展利用了 Intel 硬件的 AVX-512 Vector Neural Network Instructions (AVX512 VNNI) 和 Intel Advanced Matrix Extensions (Intel AMX),以及 Intel 离散 GPU 上的 Intel Xe Matrix Extensions (XMX) AI 引擎进行优化。此外,通过 PyTorch xpu 设备,Intel Extension for PyTorch 提供了对 Intel 独立 GPU 的简单 GPU 加速。

该扩展为 eager 模式和 graph 模式提供了优化,但通常情况下,PyTorch 的 graph 模式通过优化技术(如操作融合)可以获得更好的性能。因此,建议在工作负载支持的情况下,使用 TorchScript 与 Intel Extension for PyTorch 一起使用。可以选择使用 torch.jit.trace() 函数或 torch.jit.script() 函数,但根据评估,torch.jit.trace() 支持更多的工作负载,因此建议首选使用 torch.jit.trace()。

安装

可以使用以下两个命令之一来安装 Intel Extension for PyTorch CPU 版本:

python -m pip install intel_extension_for_pytorch
python -m pip install intel_extension_for_pytorch -f https://developer.intel.com/ipex-whl-stable-cpu

对于 GPU 版本,可以通过以下命令进行安装:

python -m pip install torch==1.13.0a0+git6c9b55e intel_extension_for_pytorch==1.13.120+xpu -f https://developer.intel.com/ipex-whl-stable-xpu

使用

要开始使用 Intel Extension for PyTorch,用户需要进行少量的代码更改。支持 PyTorch 命令式模式和 TorchScript 模式。只需导入 Intel Extension for PyTorch 包并对模型对象应用其优化函数。如果是训练工作负载,优化函数还需要应用于优化器对象。

以下代码片段显示了具有 FP32 数据类型的推理代码:

import torch
import torchvision.models as models
model = models.resnet50(pretrained=True)
model.eval()
data = torch.rand(1, 3, 224, 224)
import intel_extension_for_pytorch as ipex
model = ipex.optimize(model)
with torch.no_grad():
 model(data)

本文作者:Maeiee

本文链接:Intel Extension for PyTorch

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!